#include "mypushbutton.h"
#include <QPainter>
#include <QPaintEvent>
mypushbutton::mypushbutton(QWidget * parent):QPushButton(parent)
{

}

void mypushbutton::paintEvent(QPaintEvent *pe)
{
    //QPushButton::paintEvent(pe);
    QPainter painter(this);
    //painter.setRenderHint(QPainter::Antialiasing, true);

    // 设置按钮的背景颜色
    QColor backgroundColor = isDown() ? Qt::darkGray : Qt::gray;//如果按钮被按下，背景颜色为深灰色；否则为灰色。
    painter.setBrush(backgroundColor); //设置画刷颜色为backgroundColor，用于填充按钮的背景。
    painter.setPen(Qt::NoPen); //设置画笔为无色（Qt::NoPen），这样在绘制按钮背景时不会有边框

    // 绘制按钮的背景
    painter.drawRoundedRect(pe->rect(), 10, 10);//绘制一个圆角矩形作为按钮的背景。rect()返回按钮的矩形区域，10, 10表示圆角的半径。

    // 设置按钮的文本颜色
    QColor textColor = isDown() ? Qt::red : Qt::blue;
    painter.setPen(textColor); //设置画笔颜色为textColor，用于绘制按钮的文本。

    // 绘制按钮的文本

    //创建一个矩形区域textRect，它是按钮矩形区域的内缩版本。adjusted(5, 5, -5, -5)表示将矩形的左、上、右、下各缩进5个像素。
    QRect textRect = rect().adjusted(5, 5, -5, -5);
    painter.drawText(textRect, Qt::AlignCenter, text()); //在textRect区域内绘制按钮的文本。Qt::AlignCenter表示文本居中对齐，text()返回按钮的文本内容。
}
